package com.huawei.esdk.tp.healthcare.local.site;

import java.util.List;
import java.util.Map;

import com.huawei.esdk.tp.healthcare.local.bean.CameraControl;
import com.huawei.esdk.tp.healthcare.local.bean.SiteInfo;
import com.huawei.esdk.tp.healthcare.local.bean.TPSDKResponse;

public interface SiteService
{

    /**
     * 查询所有会场
     * @return
     */
    TPSDKResponse<List<SiteInfo>> queryAllSites();

    /**
     * 按会场URI查询会场信息
     * @param siteUri
     * @return
     */
    TPSDKResponse<SiteInfo> querySiteByURI(String siteUri);

    /**
     * 按会场名称查询会场信息
     * @param siteName
     * @return
     */
    TPSDKResponse<List<SiteInfo>> querySiteByName(String siteName);

    /**
     * 查询某个会场当前时间段忙闲状态
     * @param siteUri
     * @return
     */
    TPSDKResponse<Integer> querySiteFreeBusy(String siteUri);

    /**
     * 查询多个会场预约忙闲状态
     * @param siteUris
     * @param timeRange
     * @return
     */
    TPSDKResponse<Map<String,Integer>> querySitesFreeBusy(
            List<String> siteUris, Integer timeRange);

    /**
     * 指定会场摄像头控制
     * @param siteUri
     * @param cameraControl
     * @return
     */
    Integer ctrlCamera(String siteUri, CameraControl cameraControl);

    /**
     * 指定会场辅流发送控制
     * @param siteUri
     * @param controlCode
     * @return
     */
    Integer ctrlAuxStream(String siteUri, Integer controlCode);

    /**
     * 指定会场静音
     * @param confId
     * @param siteUris
     * @param isMute
     * @return
     */
    Integer micMuteSites(String confId, List<String> siteUris, Boolean isMute);

    /**
     * 指定会场闭音
     * @param confId
     * @param siteUris
     * @param isQuiet
     * @return
     */
    Integer spkQuietSites(String confId, List<String> siteUris,
            Boolean isQuiet);

    /**
     * 呼入指定会议的会场
     * @param confId
     * @param siteUris
     * @return
     */
    Integer connectSites(String confId, List<String> siteUris);

    /**
     * 挂断指定会议的会场
     * @param confId
     * @param siteUris
     * @return
     */
    Integer disconnectSites(String confId, List<String> siteUris);

}
